// 全局变量
let length = 0;
let i = 0;
let tab = null;
let time = 15000;
let timer = null;

/**
 * 设置标签页切换的时间间隔
 * @param {number} t - 切换时间间隔（秒）
 */
function setTime(t) {
    console.log('切换秒数: ' + t);
    time = t * 1000;
    
    // 如果定时器正在运行，重新启动以应用新的时间间隔
    if (timer !== null) {
        stop();
        run();
    }
}

/**
 * 开始自动切换标签页
 */
function run() {
    console.log('开始自动切换标签页');
    
    // 使用chrome.tabs.query替代已弃用的getAllInWindow
    chrome.tabs.query({ currentWindow: true }, function (tabs) {
        length = tabs.length;
        if (length > 0) {
            tab = tabs[0];
        }
    });
    
    if (timer === null && tab !== null) {
        console.log('启动定时器，间隔: ' + time + 'ms');
        timer = setInterval(function(){
            chrome.tabs.highlight({ windowId: tab.windowId, tabs: i }, function(){});
            i++;
            console.log('当前标签页索引: ' + i + ', 总标签页数: ' + length);
            if (i >= length) i = 0;
        }, time); 
    }
}

/**
 * 停止自动切换标签页
 */
function stop() {
    console.log('停止自动切换标签页');
    clearInterval(timer);
    timer = null;
}

// 监听service_worker启动事件
chrome.runtime.onStartup.addListener(function() {
    console.log('Service Worker 启动');
});

// 监听扩展安装事件
chrome.runtime.onInstalled.addListener(function() {
    console.log('扩展已安装或更新');
});

// 监听消息事件，用于与popup页面通信
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.action === 'start') {
        run();
        sendResponse({ status: 'started' });
    } else if (request.action === 'stop') {
        stop();
        sendResponse({ status: 'stopped' });
    } else if (request.action === 'setTime') {
        setTime(request.time);
        sendResponse({ status: 'timeSet', time: time });
    }
    return true; // 表示异步响应
});
